//package de.pdbm.swt.aufgabe4;
//
//import java.io.FileNotFoundException;
//import java.io.FileOutputStream;
//import java.io.IOException;
//import java.io.InputStream;
//import java.io.OutputStream;
//import java.math.BigDecimal;
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.List;
//
//import org.jdom.Document;
//import org.jdom.Element;
//import org.jdom.input.SAXBuilder;
//import org.jdom.output.Format;
//import org.jdom.output.XMLOutputter;
//
//public class XmlIoImpl implements XmlIo {
//
//	public void writeMitarbeiter(List<Mitarbeiter> mitarbeiter, OutputStream out)
//			throws IOException {
//		// System.out.println(mitarbeiter.get(0).getId());
//		// System.out.println(mitarbeiter.size());
//		Element root = new Element("mitarbeiter-list");
//		String id;
//		String vorname;
//		String nachname;
//		Date geburtsdatum;
//		Mitarbeiter chef;
//		VbArt art = VbArt.VB;
//		while (!mitarbeiter.isEmpty()) {
//			System.out.println(mitarbeiter.get(0).getId());
//			Element entity = new Element("mitarbeiter");
//			id = mitarbeiter.get(0).getId();
//			vorname = mitarbeiter.get(0).getVorname();
//			nachname = mitarbeiter.get(0).getNachname();
//			geburtsdatum = mitarbeiter.get(0).getGeburtsdatum();
//			art = mitarbeiter.get(0).getVbArt();
//			chef = mitarbeiter.get(0).getChef();
//			root.addContent(entity);
//			if (id != null) {
//				Element eId = new Element("id");
//				eId.setText(id);
//				entity.addContent(eId);
//			}
//			if (vorname != null) {
//				Element eId = new Element("vorname");
//				eId.setText(vorname);
//				entity.addContent(eId);
//			}
//			if (nachname != null) {
//				Element eId = new Element("nachname");
//				eId.setText(nachname);
//				entity.addContent(eId);
//			}
//			if (geburtsdatum != null) {
//				Element eId = new Element("geburtsdatum");
//				eId.setText(geburtsdatum.getDate() + "."
//						+ geburtsdatum.getMonth() + "."
//						+ geburtsdatum.getYear());
//				entity.addContent(eId);
//			}
//
//			if (art != null) {
//				Element eId = new Element("vbart");
//				eId.setText(art.toString());
//				entity.addContent(eId);
//			}
//			if (chef != null) {
//				Element eId = new Element("chef");
//				eId.setText(chef.getId());
//				entity.addContent(eId);
//			}
//			mitarbeiter.remove(0);
//
//		}
//
//		// root.addContent(entity);
//
//		Document doc = new Document(root);
//
//		try {
//
//			FileOutputStream out2 = new FileOutputStream("Dateinamen.xml");
//			XMLOutputter serializer = new XMLOutputter(Format.getPrettyFormat());
//			// dokument extern schreiben
//			serializer.output(doc, out);
//		} catch (FileNotFoundException e) {
//			e.printStackTrace();
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//
//	}
//
//	public void writeProdukte(List<Produkt> produkt, OutputStream out)
//			throws IOException {
//
//		String id;
//		String bezeichnung;
//		BigDecimal preis;
//
//		Element root = new Element("produkt-list");
//
//		while (!produkt.isEmpty()) {
//			// System.out.println(produkt.get(0).getId());
//			Element entity = new Element("produkt");
//			id = produkt.get(0).getId();
//			bezeichnung = produkt.get(0).getBezeichnung();
//			preis = produkt.get(0).getPreis();
//
//			root.addContent(entity);
//
//			if (id != null) {
//				Element eId = new Element("id");
//				eId.setText(id);
//				entity.addContent(eId);
//			}
//			if (bezeichnung != null) {
//				Element eId = new Element("bezeichnung");
//				eId.setText(bezeichnung);
//				entity.addContent(eId);
//			}
//			if (preis != null) {
//				Element eId = new Element("preis");
//				eId.setText(preis.toString());
//				entity.addContent(eId);
//			}
//
//			produkt.remove(0);
//
//		}
//
//		Document doc = new Document(root);
//
//		try {
//			// FileOutputStream out2 = new FileOutputStream("Dateinamen.xml");
//			XMLOutputter serializer = new XMLOutputter(Format.getPrettyFormat());
//			// dokument extern schreiben
//			serializer.output(doc, out);
//		} catch (FileNotFoundException e) {
//			e.printStackTrace();
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//
//	}
//
//	public List<Mitarbeiter> readMitarbeiter(InputStream in) throws Exception {
//		List<Mitarbeiter> list = new ArrayList<Mitarbeiter>();
//		Mitarbeiter dummy = new MitarbeiterImpl();
//		SAXBuilder builder = new SAXBuilder();
//		Document doc = (Document) builder.build(in);
//
//		Element root = doc.getRootElement();
//
//		System.out.println("\nWurzelelement: " + root);
//		List<Element> alleKinder = new ArrayList<Element>();
//		alleKinder = root.getChildren();
//
//		for (int i = 0; i < alleKinder.size(); i++) {
//			// Aktueller mitarbeiter
//			Element mitarbeiter = alleKinder.get(i);
//			dummy.setNachname(mitarbeiter.getChildText("nachname"));
//			dummy.setId(mitarbeiter.getChildText("id"));
//			dummy.setVorname(mitarbeiter.getChildText("vorname"));
//			// Date
//			Date geb = new Date();
//			String dat[] = mitarbeiter.getChildText("geburtsdatum")
//					.split("\\.");
//			geb.setDate(Integer.parseInt(dat[0]));
//			geb.setMonth(Integer.parseInt(dat[1]));
//			geb.setYear(Integer.parseInt(dat[2]));
//			dummy.setGeburtsdatum(geb);
//			// date end
//			String Vb = mitarbeiter.getChildText("vbart");
//			if (Vb.equals("VB")) {
//				dummy.setVbArt(VbArt.VB);
//			}
//
//			if (Vb.equals("GVB")) {
//				dummy.setVbArt(VbArt.GVB);
//			}
//
//			if (Vb.equals("DVB")) {
//				dummy.setVbArt(VbArt.DVB);
//			}
//
//			if (!mitarbeiter.getChildText("vbart").equals("DVB")) {
//				List<Mitarbeiter> dummylist = new ArrayList<Mitarbeiter>();
//				for (Mitarbeiter x : list) {
//					dummylist.add(x);
//				}
//				while (!dummylist.isEmpty()) {
//					if (dummylist.get(0).getVbArt().equals((VbArt.DVB))) {
//						dummy.setChef(dummylist.get(0));
//						System.out.println(dummylist.get(0));
//					}
//					dummylist.remove(0);
//				}
//
//			}
//
//			list.add(dummy);
//		}
//		return list;
//
//	}
//
//	public List<Produkt> readProdukte(InputStream in) throws Exception {
//		List<Produkt> list = new ArrayList<Produkt>();
//		Produkt dummy = new ProduktImpl();
//		SAXBuilder builder = new SAXBuilder();
//		Document doc = (Document) builder.build(in);
//
//		Element root = doc.getRootElement();
//
//		System.out.println("\nWurzelelement: " + root);
//		List<Element> alleKinder = new ArrayList<Element>();
//		alleKinder = root.getChildren();
//
//		for (int i = 0; i < alleKinder.size(); i++) {
//			// Aktueller mitarbeiter
//			Element produkt = alleKinder.get(i);
//			dummy.setBezeichnung(produkt.getChildText("bezeichnung"));
//			dummy.setId(produkt.getChildText("id"));
//			dummy.setPreis(new BigDecimal(produkt.getChildText("preis")));
//			list.add(dummy);
//
//			System.out.println(dummy.getBezeichnung());
//			System.out.println(dummy.getId());
//			System.out.println(dummy.getPreis());
//		}
//
//		return list;
//	}
//
//}
